home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 June / Macworld (1999-06).dmg / Shareware World / Info / For Developers / MacZoop2.0.sea / MacZoop2.0 / Required Classes / ZDefines.h < prev    next >
Text File  |  1999-02-11  |  4KB  |  167 lines

  1. /*************************************************************************************************
  2. *
  3. *
  4. *            MacZoop 2.0 - "the framework for the rest of us"         
  5. *
  6. *
  7. *
  8. *            ZDefines.h            -- some handy constants, etc
  9. *
  10. *
  11. *
  12. *
  13. *
  14. *            © 1996, Graham Cox
  15. *
  16. *
  17. *
  18. *
  19. *************************************************************************************************/
  20.  
  21. #pragma once
  22.  
  23. #ifndef __ZDEFINES__
  24. #define __ZDEFINES__
  25.  
  26. #ifndef TRUE
  27. #define    TRUE     1
  28. #endif
  29.  
  30. #ifndef FALSE
  31. #define FALSE     0
  32. #endif
  33.  
  34. #ifndef NIL
  35. #define NIL     NULL
  36. #endif
  37.  
  38. // standard basic resource IDs, etc.
  39.  
  40. #define        kUntitledWindowID    128        // resource ID of the main window template
  41.  
  42. #define        kAppleMenuID        128        // ID of the apple menu
  43. #define        kFileMenuID            129        // ID of File menu
  44. #define        kEditMenuID            130        // ID of Edit menu
  45.  
  46. #define        kAboutBoxID            128
  47.  
  48. #define        kStdMenubarID        128        // ID of the default MBAR resource for the main menu bar
  49. #define        kMiscStrListID        128
  50. #define        kExceptionAlertID    130
  51. #define        kMemoryLowAlertID    132
  52. #define        kAssertionAlertID    138
  53.  
  54. #define        kSleepTime            10        // number of ticks to give up to background programs
  55. #define        kStdScrollbarWidth    15        // pixel width/height of normal scrollbar
  56.  
  57.  
  58. // save changes alert constants
  59.  
  60. #define        kConfirmSaveAlertID    129
  61.  
  62. enum
  63. {
  64.     kConfirmSave = 1,
  65.     kCloseCancel,
  66.     kCloseNoSave
  67. };
  68.  
  69. // macros for extracting window/dialog object references from mac windows
  70.  
  71. #define        IS_ZWINDOW_KIND        772    // in the 'kind' field of the window record
  72.  
  73. #define        GetZWindow(w)        ((((WindowPeek) w)->windowKind == IS_ZWINDOW_KIND) || \
  74.                                  (((WindowPeek) w)->windowKind == dialogKind))? \
  75.                                     (ZWindow*) GetWRefCon(w) : NULL
  76.  
  77.  
  78.  
  79. // handy object disposal macros                                    
  80.  
  81. #define        ForgetObject(p)        { delete (p); (p) = NULL; }
  82. #define        ForgetThis()        { delete this; }
  83.  
  84. // common useful macros. Be careful passing functions to these, you may get poor
  85. // performance and/or incorrect results.
  86.  
  87. #define        MIN( a, b )        (((a) < (b))? (a) : (b))
  88. #define        MAX( a, b )        (((a) > (b))? (a) : (b))
  89. #define        ABS( x )        (((x) < 0 )?  -(x) : (x))
  90. #define        CMP( a, b )        (((a) < (b))? -1 : (((a) > (b))? 1 : 0 ))
  91. #define        SGN( a )        (((a) < 0 )? -1 : 1 )
  92.  
  93. // macros for compile-time string hacking:
  94.  
  95. #define        CLITERAL( x )    #x
  96. #define        PLITERAL( x )    CLITERAL( \p##x )
  97. #define        HEADER( x )        CLITERAL( x.h )
  98.  
  99. // can be passed to SetCursorShape() to set cursor to these shapes:
  100.  
  101. #define        ARROW_CURSOR            0
  102. #define        WIN_ARROW_CURSOR        199
  103. #define        CONTEXT_MENU_CURSOR        136
  104. #define        HAND_CURSOR                137
  105. #define        HAND_CURSOR_CLOSED        138
  106.  
  107. // common non-ascii keys
  108.  
  109. #define        TAB_KEY                    0x09
  110. #define        RETURN_KEY                0x0D
  111. #define        ENTER_KEY                0x03
  112. #define        ESCAPE_KEY                0x1B
  113. #define        UP_ARROW_KEY            0x1E
  114. #define        DOWN_ARROW_KEY            0x1F
  115. #define        LEFT_ARROW_KEY            0x1C
  116. #define        RIGHT_ARROW_KEY            0x1D
  117. #define        BACKSPACE_KEY            0x08
  118.  
  119. // pseudo-modifier key
  120.  
  121. #define        FromAutoKeyEvent        0x0040        // added to modifiers field for keyboard input
  122.  
  123. // undefined and quiet exceptions
  124.  
  125. #define        kUnknownExceptionErr    999            // catch all error code
  126. #define        kRuntimeLibException    998            // runtime lib threw exception (bad alloc, etc)
  127. #define        kSilentErr                -1            // no alert message for this error
  128. #define        kMacZoopParamErr        950            // NULL Ptr, Handle passed as parameter
  129. #define        kMacZoopParamErr1        951            // Other parameter not correct
  130. #define        kMacZoopNULLPtrErr        952            // NULL Ptr where it wasn't expected
  131.  
  132. #define        kUnknownSignature        '????'
  133.  
  134. // current MacZoop version number & release stage:
  135.  
  136. #define        MACZOOP_VERSION            0x0200        // current version number
  137.  
  138. enum
  139. {
  140.     k_Version_Alpha,
  141.     k_Version_Beta,
  142.     k_Version_Final_Candidate,
  143.     k_Version_Release
  144. };
  145.  
  146. #define        MACZOOP_VERSION_STAGE    k_Version_Final_Candidate
  147.  
  148. // global structure provides some common gestalt results
  149.  
  150. typedef struct
  151. {
  152.     Boolean        supportsColour;                    // colour quickdraw available
  153.     Boolean        hasDragManager;                    // drag manager available
  154.     Boolean        hasFPU;                            // has a floating-point coprocessor
  155.     Boolean        hasAppleEvents;                    // has apple events
  156.     Boolean        hasAppearanceMgr;                // has the appearance manager
  157.     Boolean        hasQuickTime;                    // has QuickTime available
  158.     Boolean        hasImgCompressionMgr;            // the Image Compression Manager is available
  159.     Boolean        hasNavigationServices;            // Nav Services installed & available
  160.     Boolean        hasContextualMenus;                // Contextual menu services available
  161.     short        systemVersion;                    // current system version number
  162. }
  163. tMacInfo;
  164.  
  165.  
  166.  
  167. #endif